VMA 486 EMULATOR
================

A clean-room IBM PC/AT/486-class emulator for Windows
Developed by Vitor Martins Augusto / VMA Broadcast

Website:
https://vma-broadcast.com/

Support the project:
https://www.paypal.com/paypalme/vitormartinsaugusto


IMPORTANT DISPLAY FEATURE
-------------------------

CRT SIMULATION is built into VMA 486 Emulator.

Settings -> CRT Simulation offers:
  - Off - pixel clean
  - VGA CRT - scanlines + vignette
  - Soft phosphor - mild scanlines
  - Subtle - very light CRT texture

ABOUT
-----

VMA 486 Emulator is a native Windows emulator designed to reproduce a
classic DOS/Windows PC environment while remaining simple to use.

The emulator was developed entirely by myself. No third-party emulator
source code and no third-party emulation library are used.

The program does not require an external emulator core. Guest operating
systems, applications, games, ROMs, disk images and ISO images are loaded
separately by the user.


MAIN FEATURES
-------------

CPU
  - 486-class x86 emulation
  - Configurable CPU speed
  - Very slow legacy settings for early PC/XT software
  - 0.25, 0.5, 1, 2, 3, 4, 4.77 MHz and higher speeds
  - Up to 100 MHz and Full Speed mode
  - Configurable RAM from 1 MB to 64 MB

VIDEO
  - CGA
  - EGA
  - VGA
  - SVGA / S3-compatible video
  - Correct scaling options for classic PC graphics
  - Built-in CRT simulation with four selectable modes:
      Off - pixel clean
      VGA CRT - scanlines + vignette
      Soft phosphor - mild scanlines
      Subtle - very light CRT texture

CRT SIMULATION
--------------

VMA 486 Emulator includes built-in CRT simulation in Settings so that old
DOS and Windows software can be displayed with a presentation closer to a
period computer monitor instead of only a perfectly clean modern LCD image.

Available CRT modes:

  Off - pixel clean
      No CRT processing. Produces the cleanest and sharpest pixel image.

  VGA CRT - scanlines + vignette
      Strong CRT-style presentation with visible scanlines and a vignette
      toward the edges of the display.

  Soft phosphor - mild scanlines
      Softer monitor appearance with mild scanlines and a gentler
      phosphor-style image.

  Subtle - very light CRT texture
      A restrained CRT effect for users who want only a small amount of
      period monitor character.

The CRT simulation affects only the displayed image. It does not alter guest
video memory, graphics modes or software operation.

CRT simulation can be combined with the emulator's display scaling options
to obtain either a clean pixel-accurate image or a more authentic period
monitor appearance.


AUDIO
  - PC Speaker
  - Sound Blaster Pro compatible audio
  - OPL2 / OPL3 FM synthesis

INPUT
  - PC keyboard emulation
  - Improved IRQ1 / direct keyboard handling for early DOS games
  - IBM PC game-port joystick emulation at I/O 201h
  - USB joystick/gamepad support
  - Analog stick and digital gamepad support
  - Configurable axes, dead zone, inversion and buttons
  - Joystick calibration support for early DOS software

STORAGE
  - Floppy drive A:
  - Raw floppy images in many historical geometries and sizes
  - Read-only or read/write floppy operation
  - HDD C:
  - HDD D:
  - Host folder D:
  - ATAPI CD-ROM / ISO support
  - Create new blank floppy images
  - Create new blank HDD images

STATE MANAGEMENT
  - Pause / Resume
  - Save State
  - Load State
  - Reset
  - Boot from HDD or floppy


SUPPORTED FLOPPY MEDIA
----------------------

The emulator supports raw sector-based floppy images, including many common
and uncommon PC formats such as:

  160 KB
  180 KB
  200 KB
  320 KB
  360 KB
  400 KB
  640 KB
  720 KB
  800 KB
  1.20 MB
  1.232 MB
  1.44 MB
  1.60 MB
  1.68 MB DMF
  extended 82/83/84-track formats
  ~1.80 MB
  ~1.875 MB
  2.88 MB

Supported raw-image filename extensions include:

  .IMG
  .IMA
  .FLP
  .RAW
  .BIN

Flat sector images are supported. Flux/track formats such as SCP, TD0 or
structured IMD images are not treated as ordinary raw floppy images.


CREATING NEW MEDIA
------------------

Use the File menu to create:

  - Blank floppy images in supported sizes
  - Blank HDD images from small DOS-era disks up to multi-gigabyte images

Newly created media is blank and unformatted.

For a new HDD, normally boot DOS and use FDISK followed by FORMAT.

For a new floppy, use the FORMAT command inside the guest operating system.


FLOPPY WRITE PROTECTION
-----------------------

Floppy A: can be configured in Settings as:

  - Read only
  - Read / Write

Use Read Only when working with original or valuable disk images.

If Windows itself prevents writing to an image file, the emulator will
safely fall back to read-only access.


JOYSTICK NOTES
--------------

Modern USB controllers are converted to the timing-based IBM PC game-port
interface used by old DOS games.

For best results:

  1. Open Settings.
  2. Select the desired controller.
  3. Choose Auto mapping first.
  4. Leave the controller centered.
  5. Use Set Neutral if needed.
  6. Run the game's own joystick calibration.

The emulator supports both analog controllers and digital D-pad controllers.

Early DOS joystick software can be extremely timing-sensitive. The VMA
game-port implementation uses a deterministic timing model so that the full
left/up/center/right/down range remains usable even with old calibration
routines.


CPU SPEED AND VERY OLD GAMES
----------------------------

Some early DOS and PC/XT games base their timing directly on CPU execution
speed and can run too fast even when a nominal 4.77 MHz clock is selected.

If this happens, select a lower speed such as:

  4 MHz
  3 MHz
  2 MHz
  1 MHz
  0.5 MHz
  0.25 MHz

Use whichever setting gives the software the correct real-world speed.

The displayed MHz value is an emulator performance setting and should not
be interpreted as a cycle-perfect recreation of a particular historical CPU.


LIVE DEBUGGER
-------------

The DEBUG window provides direct access to the live emulated machine.

Features include:

  - 486 disassembler
  - Register and CPU-state display
  - Breakpoints
  - Single stepping
  - Continuous disassembly navigation
  - HEX and ASCII memory editor
  - Search for HEX byte sequences
  - Search for ASCII strings
  - Memory occupation / heterogeneity map
  - Jump and branch visualization
  - NOP instructions
  - Convert/invert/retarget branches
  - Patch opcodes and memory
  - Save and restore emulator states

The debugger operates on the live memory and CPU state of the emulator.

Think of it as machine-code surgery: save a state before experimenting so
that any modification can be undone instantly.


TRAINER / CHEAT FINDER
----------------------

The built-in trainer can locate changing game variables such as lives,
energy, ammunition or score.

Example: finding a "lives" byte

  1. Pause the game while you have 5 lives.
  2. Start a trainer scan for value 5.
  3. Resume the game and lose one life.
  4. Pause and filter for value 4.
  5. Repeat for 3, 2, 1, etc.
  6. Inspect the remaining candidate addresses.
  7. Patch or freeze the desired value.

Trainer scans can be saved and loaded.


QUICK START
-----------

1. Start VMA 486 Emulator.exe.

2. Configure RAM and CPU speed if required.

3. Mount a floppy, HDD or CD-ROM image.

4. Use Boot HDD or Boot Floppy.

5. Adjust video, CRT simulation, audio, joystick and performance settings as required.

No installation of a separate emulator core is required.


SAVE STATES
-----------

Save states are useful before:

  - testing software
  - changing memory
  - patching code
  - using the trainer
  - experimenting in the debugger

A saved state allows the complete emulated machine to be restored to an
earlier point.


CLEAN-ROOM DEVELOPMENT
----------------------

The VMA 486 Emulator implementation was developed entirely by myself.

No third-party emulator source code is incorporated into the emulator.
No third-party emulation library is used.

Hardware behavior is implemented directly in the VMA source code.

The executable is built with the Microsoft Visual C++ toolchain and uses
normal Microsoft Windows system/runtime components.


COPYRIGHT / SOFTWARE IMAGES
---------------------------

VMA 486 Emulator itself does not grant any rights to third-party operating
systems, applications, games, firmware, ROM images, disk images or ISO files.

Any software or media loaded by the user remains subject to the rights and
licences of its respective owner.

Users are responsible for ensuring that they have the right to use the
software and media that they load into the emulator.


PROJECT
-------

VMA Broadcast
https://vma-broadcast.com/

If you enjoy the emulator and would like to support continued development:

https://www.paypal.com/paypalme/vitormartinsaugusto


Thank you for using VMA 486 Emulator.
